import { auth as _auth } from '@/utils/utils';

// 公共的前缀
const baseModuleName = '';
// 公共的分隔符
export const baseSeparator = '-';

/** 变更管理 */
// 公共的【变更管理】前缀
const changeManagementPrefix = baseModuleName + '变更管理-';
// PR管理
export const prManagementModule = changeManagementPrefix + '工程变更预评审(PR)';
// PCR管理
export const pcrManagementModule = changeManagementPrefix + '工程变更评审(PCR)';
// ccr管理
export const ccrManagementModule = changeManagementPrefix + '产品变更评审(CCR)';
// ccr管理-变更内容
export const ccrManagementChangeContentModule = baseModuleName + '产品变更评审-变更内容';
// 工程变更
export const ecoManagementModule = changeManagementPrefix + '工程变更执行(EWO)';
// IC管理
export const icManagementModule = changeManagementPrefix + '工程变更实施(IC)';
// 临时变更评审
export const tcrManagementModule = changeManagementPrefix + '临时变更评审(TCR)';
// 售后变更
export const swoModule = changeManagementPrefix + '售后变更单(SWO)';
// 临时变更实施
export const tipManagementModule = changeManagementPrefix + '临时变更实施(TIP)';
// 软件时间RESET
export const srtManagementModule = changeManagementPrefix + '软件时间RESET';

/** 制造BOM管理 */
// 公共的【制造BOM管理】前缀
const mbomPrefix = baseModuleName + '制造BOM管理-';
// BPO下发视图（制造）
export const mSapBpoModule = mbomPrefix + 'BPO下发视图（制造）';
// 制造BOM管理
export const mbomModule = mbomPrefix + '制造BOM维护';
// 断点拆分申请单
export const bsoModule = mbomPrefix + '断点拆分申请单';
// SAP BOM房间定义
export const sapBomModule = mbomPrefix + 'SAP BOM视图';
// 制造BOM房间
export const mbomRoomModule = mbomPrefix + '制造BOM房间定义';
// 制造变更单
export const mwoModule = mbomPrefix + '制造变更单';
// 制造变更单详情制造BOM
export const mwoMBOMModule = mwoModule + '-' + '制造BOM';
// 自制件BOM管理
export const selfControlModule = mbomPrefix + '自制件BOM管理';
// 制造零件结构库
export const manufacturePartStructureModule = mbomPrefix + '制造零件结构库';
// 断点变更单（制造）
export const mbpModule = mbomPrefix + '断点变更单（制造）';
// 断点变更单（制造）-切换时间
export const mbpSwitchingTimeModule = mbpModule + '-' + '切换时间';

/** SBOM管理 */
// 公共的【SBOM管理】前缀
const sbomPrefix = baseModuleName + 'SBOM管理-';
// A+B库
export const abLibraryModal = sbomPrefix + 'A+B库';
// 备件分组库
export const spgroupLoupeModal = sbomPrefix + '备件分组库';
// 替换关系总览
export const replaceRelationOverviewModule = sbomPrefix + '替换关系总览';
// 多轨件关系库
export const trackPartModal = sbomPrefix + '多轨件关系库';
// 通用备件库
export const sparePartsLibrary = sbomPrefix + '通用备件库';
// 售后LOA
export const sbomLoaModule = sbomPrefix + '售后LOA';
// 备件定义关系管理
export const definerelation = sbomPrefix + '备件定义关系管理';
// 总成散件库
export const assemblyPartModal = sbomPrefix + '总成散件库';
// 品类管理
export const categoryLibrary = sbomPrefix + '品类管理';
// 备件名称关系管理
export const namerelation = sbomPrefix + '备件名称关系管理';
// SBOM管理
export const sbomModule = sbomPrefix + 'SBOM';
// 备件名称库
export const spnameLoupeModal = sbomPrefix + '备件名称库';
// 备件主数据
export const sparePartMainData = sbomPrefix + '备件主数据';
// 品牌管理
export const brandModule = sbomPrefix + '品牌管理';
// BPO下发视图（售后）
export const sSapBpoModule = sbomPrefix + 'BPO下发视图（售后）';
// 断点变更单（售后）
export const sbpModule = sbomPrefix + '断点变更单（售后）';
// 分工表
export const worksheetModule = sbomPrefix + '分工表';
// SBOM房间定义
export const sbomRoomModule = sbomPrefix + 'SBOM房间定义';
// 售后基础数据申请
export const sparePartMgmt = sbomPrefix + '售后基础数据申请';
// 售后SAP BOM视图
export const afterSalesSAPBOMViewModule = sbomPrefix + '售后SAP BOM视图';

/** 工程BOM管理 */
// 公共的【工程BOM管理】前缀
const ebomPrefix = baseModuleName + '工程BOM管理-';
// 车型关键零部件清单
export const curxPartProduct = ebomPrefix + '车型关键零部件清单';
// 工程BOM
export const engineBOMModule = ebomPrefix + '工程BOM';
// 早期BOM发布
export const icoManagementModule = ebomPrefix + '早期BOM发布';
// 早期BOM发布-变更内容
export const icoManagementChangeContentModule = icoManagementModule + '-' + '变更内容';
// 工程BOM比较
export const engineBOMCompareModule = ebomPrefix + 'BOM比较';
// 早期BOM
export const earlyBomModule = ebomPrefix + '早期BOM';
// 早期BOM比较
export const earlyBomCompareModule = ebomPrefix + '早期BOM比较';
// 关键零部件清单库
export const curxPartLib = ebomPrefix + '关键零部件清单库';

/** 软件BOM管理 */
// 公共的【工程BOM管理】前缀
const swBomPrefix = baseModuleName + '软件BOM管理-';
// 软件BOM房间定义
export const swRoomModule = swBomPrefix + '软件BOM房间定义';
// 软件BOM
export const softwareBomModule = swBomPrefix + '软件BOM';
// 软件BOM比较
export const softwareBOMCompareModule = swBomPrefix + '软件BOM比较';
// 快照查看
export const snapshotViewModule = swBomPrefix + '快照查看';
// 快照维护
export const snapshotMaintainModule = swBomPrefix + '快照维护';

/** 制造基础数据 */
// 公共的【制造基础数据】前缀
const manufacturingBasicDataPrefix = baseModuleName + '制造基础数据-';
// 工厂清单
export const plantModule = manufacturingBasicDataPrefix + '工厂清单';
// 工厂布局维护
export const plantlayoutModule = manufacturingBasicDataPrefix + '工厂布局维护';
// GPC_FNA与工位关系管理
export const gpcfnaStationModule = manufacturingBasicDataPrefix + 'GPC_FNA与工位关系维护';
// 工厂清单
export const processrouteModule = manufacturingBasicDataPrefix + '工艺路线';

/** 产品基础数据 */
// 公共的【产品基础数据】前缀
const productBasicDataPrefix = baseModuleName + '产品基础数据-';
// PSS结构
export const productStructureModule = productBasicDataPrefix + 'PSS结构';
// 选型结构表
export const selectionStructureTableModule = productBasicDataPrefix + '选型结构表';
// 产品基础数据申请
export const productbasechangeModule = productBasicDataPrefix + '产品基础数据申请';
// 售后其他类名称库
export const afterSaleOtherNameModule = productBasicDataPrefix + '售后其他类名称库';
// 一般零件名称库
export const partNameModule = productBasicDataPrefix + '一般零件名称库';
// 软件Sub类型库
export const softwareTypeLibrary = productBasicDataPrefix + '软件Sub类型库';

//  向量数据库管理
export const vectorDatabaseManagement = productBasicDataPrefix + '向量数据库管理';
export const ccontrastPssList = productBasicDataPrefix + 'PSS完整性检查';

// ECU Name Address库
export const ecuNameAddressLibrary = productBasicDataPrefix + 'ECU Name Address库';
// 软件Codelist字段管理
export const softwareCodelistFieldManagementModule = productBasicDataPrefix + '软件Codelist字段管理';

// 虚拟代码发布单
export const virtualCodeRelease = productBasicDataPrefix + '虚拟代码发布单';
// 虚拟代码库
export const virtualCodeRepo = productBasicDataPrefix + '虚拟选型代码库';

/** 零件管理 */
// 公共的【零件管理】前缀
const partPrefix = baseModuleName + '零件管理-';
// 合件分组库
export const blockCodeLibraryModule = partPrefix + '合件分组库';
// 件号申请
export const partnumRequestModule = partPrefix + '零件编码申请';
// 件号申请-零件清单
export const partnumRequestPartListModule = partnumRequestModule + '-' + '零件清单';
// 零件库
export const partLibManageModule = partPrefix + '零件库';
// 动力零件库
export const powerPartLibModule = partPrefix + '动力零件库';
// 架构件库
export const architecturepartModule = partPrefix + '架构件库';
// 零件结构库
export const partBomManageModule = partPrefix + '零件结构库';
// 软件零件库
export const softwarepartModuleName = partPrefix + '软件零件库';

/** 车身结构管理 */
// 公共的【车身结构管理】前缀
const bodyStructurePrefix = baseModuleName + '车身结构管理-';
// 车身结构发布单
export const biwoModule = bodyStructurePrefix + '车身结构发布单';
// 车身结构表
export const bodyBomModule = bodyStructurePrefix + '车身结构表';
// 车身结构计算
export const bodyCalculateModule = bodyStructurePrefix + '车身结构计算';
// 车型车身结构规则清单
export const bodyStructrueListingModule = bodyStructurePrefix + '车型车身结构规则清单';
// 车身结构规则库
export const bodyStructrueLibModule = bodyStructurePrefix + '车身结构规则库';

/** 白车身种类管理 */
// 公共的【白车身种类管理】前缀
const BIWPrefix = baseModuleName + '白车身种类管理-';
// 白车身种类维护
export const BIWCategoryMaintainModule = BIWPrefix + '白车身种类维护';
// 白车身PSS范围定义
export const BIWPSSScopeModule = BIWPrefix + '白车身PSS范围定义';
// 白车身种类特征定义
export const BIWFeatureFamiliesModule = BIWPrefix + '白车身种类特征定义';

/** 其它 */
// 公共的【其它】前缀
const otherPrefix = baseModuleName + '其它-';
// 零件类型库
export const partTypeModule = otherPrefix + '零件类型库';
// 断点工厂权限配置（售后）
export const breakpointFactoryPermissionConfigurationAfterSaleModule = otherPrefix + '断点工厂权限配置售后';
// 断点工厂权限配置（制造）
export const breakpointFactoryPermissionConfigurationManufactureModule = otherPrefix + '断点工厂权限配置制造';
// 系统联系人
export const systemContactModule = otherPrefix + '系统联系人';
// SAP工厂接口地址
export const sapFactoryInterfaceAddressModule = otherPrefix + 'SAP工厂接口地址';
// 所属车型管理
export const vehicleModelManagementModule = otherPrefix + '所属车型管理';
// 通知固化人员-关联人员模板
export const relatedPersonnelTemplateModule = otherPrefix + '通知固化人员-关联人员模板';
// 通知固化人员-通知模板
export const notificationTemplateModule = otherPrefix + '通知固化人员-通知模板';
// 受控对象维护
export const controlledObjectMaintenanceModule = otherPrefix + '受控对象维护';
// 产品基础数据固化
export const productBasicDataSolidificationModule = otherPrefix + '产品基础数据固化';
// 产品基础数据固化-PSS不涉及软件POS人员固化
export const pssDoesNotInvolveSoftwarePOSPersonnelSolidificationModule =
  productBasicDataSolidificationModule + '-' + 'PSS不涉及软件POS人员固化';
// 产品基础数据固化-PSS涉及软件POS人员固化
export const pssDoesInvolveSoftwarePOSPersonnelSolidificationModule =
  productBasicDataSolidificationModule + '-' + 'PSS涉及软件POS人员固化';
// 产品基础数据固化-GPC-FNA/零件名称人员固化
export const gpcFnaOrPartNamePersonnelSolidificationModule =
  productBasicDataSolidificationModule + '-' + 'GPC-FNA/零件名称人员固化';
// 零件主数据固化人员
export const partsMasterDataSolidificationPersonnelModule = otherPrefix + '零件主数据固化人员';
// SAPBOM固化人员
export const sapBomCuringPersonnelModule = otherPrefix + 'SAPBOM固化人员';
// CCR固化人员
export const ccrCuringPersonnelModule = otherPrefix + 'CCR固化人员';
// CCR固化人员-基地
export const ccrCuringPersonnelBaseModule = ccrCuringPersonnelModule + '-' + '基地';
// CCR固化人员-数据发布
export const ccrCuringPersonnelDataReleaseModule = ccrCuringPersonnelModule + '-' + '数据发布';
// CCR固化人员-审批节点
export const ccrCuringPersonnelApprovalNodeModule = ccrCuringPersonnelModule + '-' + '审批节点';
// 工位匹配固化人员
export const stationMatchingSolidificationPersonnelModule = otherPrefix + '工位匹配固化人员';
// 件号申请固化人员
export const personnelApplyingForSolidificationOfPartNumberModule = otherPrefix + '件号申请固化人员';
// PCR固化人员
export const pcrCuringPersonnelModule = otherPrefix + 'PCR固化人员';
// PCR固化人员-软件版本
export const pcrCuringPersonnelSoftwareVersionModule = pcrCuringPersonnelModule + '-' + '软件版本';
// PCR固化人员-EMC工程师
export const pcrCuringPersonnelEMCEngineerModule = pcrCuringPersonnelModule + '-' + 'EMC工程师';
// PCR固化人员-功能耐久工程师
export const pcrCuringPersonnelFunctionalDurabilityEngineerModule = pcrCuringPersonnelModule + '-' + '功能耐久工程师';
// PCR固化人员-电性能工程师
export const pcrCuringPersonnelElectricalPerformanceEngineerModule = pcrCuringPersonnelModule + '-' + '电性能工程师';
// PCR固化人员-发布目标
export const pcrCuringPersonnelPublishObjectivesModule = pcrCuringPersonnelModule + '-' + '发布目标';
// PCR固化人员-项目批准
export const pcrCuringPersonnelProjectApprovalModule = pcrCuringPersonnelModule + '-' + '项目批准';
// PCR固化人员-意见协调
export const pcrCuringPersonnelCoordinationOfOpinionsModule = pcrCuringPersonnelModule + '-' + '意见协调';
// PCR固化人员-其他
export const pcrCuringPersonnelOtherModule = pcrCuringPersonnelModule + '-' + '其他';
// PCR固化人员-电子电器架构
export const pcrCuringPersonnelElectronicAndElectricalArchitectureModule =
  pcrCuringPersonnelModule + '-' + '电子电器架构';
// PCR固化人员-动力总成产品线
export const pcrCuringPersonnelPowertrainProductLineModule = pcrCuringPersonnelModule + '-' + '动力总成产品线';
// PCR固化人员-公告认证
export const pcrCuringPersonnelAnnouncementAuthenticationModule = pcrCuringPersonnelModule + '-' + '公告认证';
// PCR固化人员-集成测试工程师
export const pcrCuringPersonnelIntegrationTestingEngineerModule = pcrCuringPersonnelModule + '-' + '集成测试工程师';
// PCR固化人员-标准化采购工程师
export const pcrCuringPersonnelStandardizedProcurementEngineerModule =
  pcrCuringPersonnelModule + '-' + '标准化采购工程师';
// PCR固化人员-SWQA
export const pcrCuringPersonnelSWQAModule = pcrCuringPersonnelModule + '-' + 'SWQA';
// PCR固化人员-沃尔沃
export const pcrCuringPersonnelVolvoModule = pcrCuringPersonnelModule + '-' + '沃尔沃';
// PCR固化人员-工艺
export const pcrCuringPersonnelWorkmanshipModule = pcrCuringPersonnelModule + '-' + '工艺';
// PCR固化人员-售后
export const pcrCuringPersonnelAfterSaleModule = pcrCuringPersonnelModule + '-' + '售后';
// PCR固化人员-质量
export const pcrCuringPersonnelQualityModule = pcrCuringPersonnelModule + '-' + '质量';
// PCR固化人员-总布置
export const pcrCuringPersonnelGeneralArrangementModule = pcrCuringPersonnelModule + '-' + '总布置';
// PCR固化人员-通用化
export const pcrCuringPersonnelGeneralizationModule = pcrCuringPersonnelModule + '-' + '通用化';
// PCR固化人员-属性
export const pcrCuringPersonnelAttributeModule = pcrCuringPersonnelModule + '-' + '属性';
// PCR固化人员-法规
export const pcrCuringPersonnelStatuteModule = pcrCuringPersonnelModule + '-' + '法规';
// PCR固化人员-试验验证
export const pcrCuringPersonnelExperimentalVerificationModule = pcrCuringPersonnelModule + '-' + '试验验证';
// PCR固化人员-采购
export const pcrCuringPersonnelPurchaseModule = pcrCuringPersonnelModule + '-' + '采购';
// PCR固化人员-CE/VAVE
export const pcrCuringPersonnelCEOrVAVEModule = pcrCuringPersonnelModule + '-' + 'CE/VAVE';
// PCR固化人员-MOLD/CE
export const pcrCuringPersonnelCEOrMOLDModule = pcrCuringPersonnelModule + '-' + '模具CE';
// PCR固化人员-SQE/SQM
export const pcrCuringPersonnelSQEOrSQMModule = pcrCuringPersonnelModule + '-' + 'SQE/SQM';
// PCR固化人员-项目签批
export const pcrCuringPersonnelProjectSignModule = pcrCuringPersonnelModule + '-' + '项目签批';
// PCR固化人员-BOM核查
export const pcrCuringPersonnelBOMCheckModule = pcrCuringPersonnelModule + '-' + 'BOM核查';
// PCR固化人员-标准件签批
export const pcrCuringPersonnelStandardPartsEndorsementModule = pcrCuringPersonnelModule + '-' + '标准件签批';
// 文件模板
export const fileTemplateModule = otherPrefix + '文件模板';
// 基地接口人
export const baseContactPersonModule = otherPrefix + '基地接口人';
// PCR点检项目
export const pcrSpotDetectionItemsModule = otherPrefix + 'PCR点检项目';
// 项目阶段
export const projectPhaseModule = otherPrefix + '项目阶段';

/** 零件颜色管理 */
// 公共的【零件颜色管理】前缀
const partColorPrefix = baseModuleName + '零件颜色管理-';
// 零件颜色定义
export const colorMaintenanceModule = partColorPrefix + '零件颜色定义';
// 颜色代码库
export const colorLibModule = partColorPrefix + '颜色代码库';
// 零件颜色发布单
export const colorChangeModule = partColorPrefix + '零件颜色发布单';

/** 紧固件管理 */
// 公共的【紧固件管理】前缀
const fastenerPrefix = baseModuleName + '紧固件管理-';
// GPC_FNA与紧固件关系维护
export const gpcfnaFastenersModule = fastenerPrefix + 'GPC_FNA与紧固件关系维护';
// 紧固件名称库
export const fastenerPartnameModule = fastenerPrefix + '紧固件名称库';
// 紧固件授权管理
export const fastenerAuthorizationManagementModule = fastenerPrefix + '紧固件授权管理';

/** 车型配置管理 */
// 公共的【车型配置管理】前缀
const vehicleConfigurationPrefix = baseModuleName + '车型配置管理-';
// Custom Model
export const productcontrolModule = vehicleConfigurationPrefix + 'Custom Model';
// 配置表版本比较
export const crossmodelcomparisonModule = vehicleConfigurationPrefix + '配置表版本比较';
// PNO18管理
export const vehiclematerialModule = vehicleConfigurationPrefix + 'PNO18管理';
// 成品物料码管理
export const materialCodeModule = vehicleConfigurationPrefix + '成品物料码管理';
// 生产配置表管理
export const productconfigModule = vehicleConfigurationPrefix + '生产配置表管理';
// 工程配置表管理
export const engineeringConfigModule = vehicleConfigurationPrefix + '工程配置表管理';
// 工程配置表校核
export const engineeringConfigProofread = vehicleConfigurationPrefix + '工程配置表校核';
// 生产配置发布单
export const productreleasesheetModule = vehicleConfigurationPrefix + '生产配置发布单';
// 工程释放单
export const engineeringreleasesheetModule = vehicleConfigurationPrefix + '工程配置表释放单';
// 工程配置表发布单
export const engineeringConfigChangeModule = vehicleConfigurationPrefix + '工程配置发布单';
// 校核配置发布单
export const proofreadConfigChangeModule = vehicleConfigurationPrefix + '校核配置发布单';
// 工程配置表发布单-变更内容
export const engineeringConfigChangeChangeContentModule = engineeringConfigChangeModule + '-' + '变更内容';
// 生产配置发布单-变更内容
export const productConfigChangeChangeContentModule = productreleasesheetModule + '-' + '变更内容';
// 生产配置发布单-变更内容-约束规则
export const productConfigChangeChangeContentConstraintRulesModule =
  productConfigChangeChangeContentModule + '-' + '约束规则';
// 工程配置表发布单-基本信息
export const engineeringConfigChangeBaseInfoModule = engineeringConfigChangeModule + '-' + '基本信息';
// 工程配置表-对应关系
export const engineeringConfigRelationModule = engineeringConfigModule + '-对应关系';
// 工程配置表-规则定义
export const engineeringConfigRulesModule = engineeringConfigModule + '-规则定义';
// 工程配置表校核-对应关系
export const proofreadConfigRelationModule = engineeringConfigProofread + '-对应关系';
// 工程配置表校核-规则定义
export const proofreadConfigRulesModule = engineeringConfigProofread + '-规则定义';
// 产品配置表
export const productConfigModule = vehicleConfigurationPrefix + '产品配置表管理';
//产品配置发布单
export const productConfigReleaseSheetModule = vehicleConfigurationPrefix + '产品配置发布单';
// 官方配置发布单-变更内容-配置变更
export const productConfigReleaseSheetContentChangeModule = productConfigReleaseSheetModule + '-变更内容-配置变更';
// 官方配置发布单-变更内容-销售与工程车型关系定义
export const productConfigReleaseContentDefineRelationSheetModule =
  productConfigReleaseSheetModule + '-变更内容-销售与工程车型关系定义';
// 产品配置表-选装包
export const productConfigPackageFeatureModule = productConfigModule + '-选装包';
// 产品配置表-选装包
export const productConfigRulesModule = productConfigModule + '-规则定义';
// 官方配置表
export const officialConfigModule = vehicleConfigurationPrefix + '官方配置表管理';
// 官方配置表-规则定义
export const officialConfigDefineRulesModule = officialConfigModule + '-规则定义';
// 官方配置表-配置描述
export const officialConfigDescModule = officialConfigModule + '-配置描述';
// 官方配置表-整车参数
export const officialConfigDefineVehicleModule = officialConfigModule + '-整车参数';
// 官方配置表-对应关系
export const officialConfigDefineRelationModule = officialConfigModule + '-对应关系';
// 官方配置表-选装包
export const officialConfigPackageModule = officialConfigModule + '-选装包';
// 官方配置发布单
export const officialConfigReleaseSheetModule = vehicleConfigurationPrefix + '官方配置发布单';
// 官方配置发布单-变更内容-配置变更
export const officialConfigReleaseSheetContentChangeModule = officialConfigReleaseSheetModule + '-变更内容-配置变更';
// 官方配置发布单-变更内容-销售与工程车型关系定义
export const officialConfigReleaseContentDefineRelationSheetModule =
  officialConfigReleaseSheetModule + '-变更内容-销售与工程车型关系定义';
// 产品/官方配置表比较
export const sheetCompareModule = vehicleConfigurationPrefix + '产品/官方配置表比较';
// 产品/官方配置表比较-车型等级比较
export const sheetCompareCarLevelModule = sheetCompareModule + '-车型等级比较';
// 产品/官方配置表比较-对应关系比较
export const sheetCompareRelationModule = sheetCompareModule + '-对应关系比较';
// 产品/官方配置表比较-选装包比较
export const sheetCompareOptionalPackagesModule = sheetCompareModule + '-选装包比较';
// 产品/官方配置表比较-整车参数比较
export const sheetCompareVehicleParametersModule = sheetCompareModule + '-整车参数比较';
// 产品/官方配置表比较-规则约束比较
export const sheetCompareRuleModule = sheetCompareModule + '-规则约束比较';
// 试制配置发布单
export const sheetCompareTrialRuleModule = vehicleConfigurationPrefix + '试制配置发布单';

/** KDBOM管理 */
// 公共的【KDBOM管理】前缀
const kdbomPrefix = baseModuleName + 'KDBOM管理-';
// KD变更单
export const kdwoModule = kdbomPrefix + 'KD变更单';
// KD变更单详情-自制件结构
export const kdwoSelfcontrolModule = kdwoModule + '-' + '自制件结构';
// KD变更单详情-KDBOM
export const kdwoKDBOMModule = kdwoModule + '-' + 'KDBOM';
// KD变更单详情-KD供货标识领域
export const kdwoSupplystatusModule = kdwoModule + '-' + 'KD供货标识领域';
// KDBOM房间定义
export const kdRoomModule = kdbomPrefix + 'KDBOM房间定义';
// 国家代码库
export const countryCodeBaseModule = kdbomPrefix + '国家代码库';
// KDBOM维护
export const kdBOMModule = kdbomPrefix + 'KDBOM维护';
// KDBOM供货标识查询视图
export const kdbomSupplyIdentificationModule = kdbomPrefix + 'KDBOM供货标识查询视图';

/** 个人中心 */
// 公共的【个人中心】前缀
const accountCenterPrefix = baseModuleName + '个人中心-';
// CWO接收
export const e2eModule = accountCenterPrefix + 'CWO接收';
// 待处理任务(该页面为框架页面，直接在框架中处理)
export const todoModule = accountCenterPrefix + '待处理任务';
// 制造接收
export const e2mModule = accountCenterPrefix + '制造接收';
// 售后接收
export const e2sModule = accountCenterPrefix + '售后接收';
// KD接收
export const e2kdModule = accountCenterPrefix + 'KD接收';
// 车间接收
export const w2mModule = accountCenterPrefix + '车间接收';
// 替换审批人流程
export const replacementApproverProcess = accountCenterPrefix + '替换审批人流程';

/** 配置基础数据 */
// 公共的【配置基础数据】前缀
const configPrefix = baseModuleName + '配置基础数据-';
// 配置字典申请
export const libraryAppLicationFormModule = configPrefix + '配置字典申请';
// 配置字典申请-基本信息
export const libraryAppLicationBaseModule = libraryAppLicationFormModule + '-' + '基本信息';
// 配置字典申请-申请内容
export const libraryAppLicationAddModule = libraryAppLicationFormModule + '-' + '申请内容';
// 配置字典申请-变更内容
export const libraryAppLicationChangeContentModule = libraryAppLicationFormModule + '-' + '变更内容';
// 产品型谱
export const productNodeModule = configPrefix + '产品型谱';
// 全球配置字典
export const featureLibraryManagementModule = configPrefix + '全球配置字典';
// 全局约束规则
export const configUreruleConstraintLibraryModule = featureLibraryManagementModule + '-' + '全局约束规则';
//全球字典库-对应关系定义
export const featureLibraryManagementCorrespondenceModule = featureLibraryManagementModule + '-' + '配置对应关系维护';
// 型谱发布单
export const productNodeChangeModule = configPrefix + '型谱发布单';
// 产品车型
export const productCarTypeModule = configPrefix + '产品车型定义';
// 销售车型
export const salesCarTypeModule = configPrefix + '销售车型定义';
// 销售语言库
export const salesLanguagesysModule = configPrefix + '销售语言库';
// 销售车型-车型房间对应关系
export const salesCarTypeCorrespondencesModule = salesCarTypeModule + '-车型房间对应关系';
// 产品配置字典-G/L品牌
export const productConfigDictionaryAModule = configPrefix + '产品配置字典-G/L品牌';
// 产品配置字典-Z品牌
export const productConfigDictionaryZModule = configPrefix + '产品配置字典-Z品牌';
// 品牌库
export const brandlibraryModule = configPrefix + '品牌库';
// 销售分组
export const salesGroupModule = configPrefix + '配置分组库';
// 销售分组
export const salesGroupBModule = configPrefix + '销售分组库-Z品牌';
// 产品配置申请
export const productconfigapplicationModule = configPrefix + '产品配置字典申请';
// 产品配置申请
export const productconfigapplicationChangeContentModule = productconfigapplicationModule + '-变更内容';
// 全球配置字典库
export const featurelibrarymanagementModule = configPrefix + '全球配置字典库';

export const productcartypeMIXmanage = configPrefix + '产品量价';

/** 试制BOM管理 */
// 公共的【试制BOM管理】前缀
const pbomPrefix = baseModuleName + '试制BOM管理-';
// 试制变更
export const pcomanagementModule = pbomPrefix + '试制变更';
// 试制变更-变更内容
export const pcomanagementChangeContentModule = pcomanagementModule + '-' + '变更内容';
// 零件试制状态
export const pcostatusModule = pbomPrefix + '零件试制状态';
// 试制BOM房间定义
export const pcoroomModule = pbomPrefix + '试制BOM房间定义';
// 试制车型/零件包
export const pcoplanModule = pcoroomModule + '-' + '试制车型/零件包';
// 试制BOM维护
export const pcomaintainModule = pbomPrefix + '试制BOM维护';
// 推送数据查看
export const pbompushdataviewerModule = pbomPrefix + '推送数据查看';
// 样车维护
export const pbomproductcontrolModule = pbomPrefix + '样车维护';

/** 接口管理 */
// 公共的【接口管理】前缀
const interfacePrefix = baseModuleName + '接口管理-';
// 接口清单
export const interfaceListModule = interfacePrefix + '接口清单';
// 接口权限
export const interfacePermissionsModule = interfacePrefix + '接口权限';

export const configureVectorLibrary = productBasicDataPrefix + 'EBOC向量数据管理';
export const configurationIntegrityCheck = productBasicDataPrefix + 'EBOC完整性检查';
export const vehicleRoomConfiguration = otherPrefix + '车型房间系统配置管理';

// xBOM管理
const xbomPrefix = baseModuleName + 'XBOM管理-';
export const xbomModule = xbomPrefix + '特改订单管理';

// 操作名称列表
export enum AuthActions {
  vehicleRoomEdit = '车型房间编辑',
  configureFamilyEdit = '配置族编辑',
  init = '初始化',
  appendInit = '追加初始化',
  import = '导入',
  export = '导出',
  TransferPersonBtn = '转移责任人',
  initImport = '批量导入',
  intoEdit = '进入编辑',
  deleteVectorColumn = '删除向量ID列',
  intoEditSBOM = '进入编辑售后',
  batchUpdate = '批量更新',
  applyForStorage = '申请入库',
  edit = '编辑',
  add = '新增',
  delete = '删除',
  pushPNO18 = '推送PNO18',
  copy = '复制',
  save = '保存',
  effect = '生效',
  unEffect = '失效',
  publish = '发布',
  maintainProductRule = '维护全局约束',
  link = '关联',
  cancelLink = '取消关联',
  linkChange = '关联变更',
  linkChangeOrder = '关联变更单',
  view = '查看',
  promote = '提升',
  defineBusinessLevel = '定义业务级别',
  productNodeGraph = '型谱图',
  maintainPublickNum = '维护公告号',
  defineOptionalPackage = '定义选装包',
  linkFeatureCode = '关联特征值',
  cancelLinkFeatureCode = '取消关联特征值',
  maintainOptionalInfo = '维护选装信息',
  maintainOta = '维护OTA',
  copyFeatureList = '复制特征清单',
  maintainBaseInfo = '维护基础信息',
  versionCompare = '版本比较',
  initBom = '初始化超级BOM',
  maintainBasicInfo = '维护基本信息',
  maintainUsageValue = '维护配置变量',
  maintainSbom = '维护售后属性（G）',
  batchMaintain = '批量维护',
  initByGpcFna = 'GpcFna初始化',
  fullVersionRelease = '整版发布',
  interalityCheck = '完整性校验',
  configVerification = '配置检查',
  toEngineering = '转工程',
  toTC = '发送至TC',
  toLOU = 'LOU推送',
  transferPerson = '转移责任人',
  batchUpgrade = '批量升版',
  matchSupplyStatus = '一键匹配生产件制造供货状态',
  transferPersonAdmin = '转移责任人(管理员)',
  personTransfer = '责任人转移',
  managerPersonTransfer = '转移责任人管理',
  referenceCreate = '参考创建',
  addToSpecialList = '添加到特殊清单',
  specialList = '特殊清单',
  dsidImport = 'DSID导入',
  batchUpdateImport = '批量更新导入',
  replace = '替换',
  previewColorView = '预览颜色件视图',
  momesticList = '本色件清单',
  startQuickApproval = '启动快速审批',
  weightdeviation = `重量管理-重量偏差分析`,
  targetweight = '重量管理-目标重量分解',
  referenceTargetweight = '参考分配目标重量',
  weightstructure = '重量管理-重量结构管理',
  reference = '参考创建',
  weightvehicledefinition = '重量管理-重量车型管理',
  importGNR = '一般零件导入',
  importSFW = '软件导入',
  importSTD = '紧固件导入',
  importSTL = '钢板/试片导入',
  importMU = '工艺合件导入',
  importManufacture = '制造类零件导入',
  importTCSFW = 'TC软件导入',
  importPartSFW = 'TC零件导入',
  colorPartEdit = '颜色件维护',
  relatedGpcFna = '关联GPC_FNA',
  addGNR = '一般零部件申请',
  addGNRBus = '一般零部件申请(客车)',
  addSFW = '软件申请',
  addSTD = '紧固件申请',
  addWELD = '焊点件申请',
  synchronize = '同步',
  sendTC = '推送TC',
  sendTCStatusInfo = '推送TC下拉推送状态信息',
  sendTCPartInfo = '推送TC下拉推送零件信息',
  sendSRMInfo = '推送SRM下拉PCR信息',
  sendSRMEwoInfo = '推送SRM下拉EWO信息',
  sendSRMProcess = '推送SRM下拉流程状态',
  sendSRMReceipt = '推送SRM下拉设变回执',
  sendGPIS = '推送GPIS',
  rule = '校验规则',
  WhereUsed = 'WhereUsed',
  log = '日志',
  printQRcode = '打印二维码',
  createColor = '创建颜色件',
  transferCreatedBy = '转移创建人',
  transferSponsor = '修改提起人',
  unlinkCR = '断开CR',
  close = '关闭',
  batchMaintainDate = '批量维护时间',
  stationMatch = '工位匹配',
  compositePart = '定义合件',
  structureParse = '车身结构解析',
  breakUpPartColor = '手动打散颜色件',
  exportReport = '导出报表',
  transferRoomPerson = '转移房间所有人',
  transferRoomPersonAdmin = '转移房间所有人(管理员)',
  issueFeature = '下发特征清单',
  lookStationChange = '查看工位变更',
  importEngineInfo = '工艺信息初始导入',
  bpSplit = '断点拆分',
  compareConfigure = 'BOM比较配置打点',
  firstIssue = '首次下发',
  replenishIssue = '补充下发',
  maintainSupplyStatus = '维护供货领域标识',
  addAssembly = '添加总成件',
  addChildrenAssembly = '添加子结构',
  stationSync = '工位整版同步',
  partMainDataIssue = '零件主数据下发',
  generatePDF = '生成PDF',
  generateOutgoingPDF = '生成外发PDF',
  generatePDFEmail = '生成PDF(邮件)',
  generateOutgoingPDFEmail = '生成外发PDF(邮件)',
  compositePartView = '合件视图',
  checkCompositePart = '合件校验',
  kdInitImport = 'KD供货标识初始导入',
  importLOF = '导入LOF',
  importMBOM = 'MBOM增量导入',
  sendSap = '推送试制SAP',
  featureIssue = '特征值下发',
  cancelAllLink = '取消全部关联',
  linkAll = '关联全部',
  linkMBOM = '关联MBOM',
  linkKDBOM = '关联KDBOM',
  linkMPart = '关联自制件',
  allLink = '全部关联',
  handleProductNode = '产品型谱维护',
  handleProductBase = '基础车型维护',
  initSuperBom = '初始化超级BOM',
  prtCheckForm = '零件反查报表',
  colorPartForm = '添加颜色零件',
  generateStation = '生成工位数据',
  globalExport = '全局导出',
  viewGPC_FNAChangeHistory = '查看GPC-FNA变更履历',
  batchCreate = '批量添加',
  batchCopy = '批量复制',
  release = '发放',
  selectFromLib = '从库选择',
  markRead = '标记已读',
  serviceKitView = '维修包视图',
  breakupColor = '打散颜色件',
  prcDetailExport = 'PCR详情导出',
  trcDetailExport = 'TCR详情导出',
  ccrDetailExport = 'CCR导出',
  tipDetailExport = 'TIP导出',
  PushSDA = '推送SDA',
  PWOExport = 'PWO导出',
  secondTrack = '二轨BOM',
  PushACE = '推送ACE',
  onlyViewCollectedGPC_FNA = '只查看收藏的GPC_FNA',
  end = '终止',
  tipStopProcess = '终止',
  pushGECP = '推送GECP',
  supplementReleaseData = '补充处理发布后数据',
  linkMPartStructure = '关联制造零件结构',
  firstImport = '初始导入',
  manufacturePartsApplication = '制造类零件申请',
  steelPlateApplication = '钢板/试片申请',
  processConformityApplication = '工艺合件申请',
  push = '推送',
  configurationCombinationCheck = '配置组合检查',
  toBeReceive = '待接收',
  PushSBomAlpart = '推送总成散件数据',
  PushSBom = '推送SBOM数据',
  PushSBomTracks = '推送多轨件数据',
  PushSWO = '推送下游',
  exportAll = '导出全部',
  linkSwo = '关联SWO',
  linkSelfMadePartStructure = '关联自制件结构',
  icDetailExport = '导出IC详情',
  preGenWhiteCarType = '预生成白车身种类',
  whiteBodyAutoUpdate = '白车身结构自动更新',
  exportsBIWReport = 'PNO18和白车身种类关系报表',
  linkFeatureFamily = '关联特征族',
  unLinkFeatureFamily = '取消关联特征族',
  checkFeatureFamily = '特征族准确性检查',
  correspondence = '对应关系',
  correspondenceMaintenance = '配置对应关系维护',
  syncConfigGroup = '同步配置分组',
  exportDefault = '白车身配置矩阵表',
  pssReportExport = 'PSS报表导出',
  sendSoftwareBom = '推送软件BOM',
  initSoftwareBom = '初始化软件BOM',
  addSoftwareBomRoom = '新增软件BOM房间',
  linkSpectrumModelRoom = '关联型谱车型房间',
  initPSS = '初始化PSS导航',
  deletePSS = '删除PSS导航',
  linkPos = '关联POS',
  linkSoftwareBom = '关联软件BOM',
  unLinkSoftwareBom = '取消关联软件BOM',
  receive = '接收',
  refuse = '不接收',
  viewReplacementRecords = '查看替换记录',
  replaceTask = '替换任务',
  newSystem = '新增系统',
  maintenanceSystem = '维护系统',
  authorization = '维护系统',
  cancelAuthorization = '取消授权',
  introducingGlobalRules = '引入全局规则',
  bomLinesAffected = '影响的BOM行',
  ruleCheck = '规则检查',
  collectGpcFna = '收藏GPC-FNA',
  virtualCodeSelection = '虚拟代码选择',
  abandonment = '废弃',
  cancelAbandonment = '取消废弃',
  differenceView = '差异视图',
  applyBreakpoints = '应用断点',
  tileView = '平铺视图',
  engineeringChangeImpactList = '工程变更影响清单',
  costAnalysis = '成本分析',
  batchHiding = '批量隐藏',
  accuracyVerification = 'PNO18校验',
  completionVerification = '完整性校验',
  prDetailExport = 'PR导出',
  ewoDetailExport = 'EWO详情导出',
  pushMwoToGies = '推送MWO到GIES',
  pushBpoToGies = '推送BPO到GIES',
  mergeBreakboints = '合并断点',
  waitInvalidGpcFnaExportEmail = 'GPC引用报表（邮件）',
  sendTcState = '推送TC下拉状态推送TC',
  sendTcPart = '推送TC下拉零件推送TC',
  batchSynchronization = '批量同步',
  synchronizeConfigurationTable = '同步工程配置表',
  pushToGECP = '推送至GECP',
  createRemanufacturePart = '创建再造件',
  createBreakingPart = '创建拆车件',
  createObsolescencePart = '创建旧件',
  synchronousDevelopmentAttribute = '同步开发属性',
  undoDraft = '撤销草稿',
  receiveOrders = '接收订单',
  setupMbom = '设置MBOM工程师',
  transferOwner = '转移责任人',
  transferInterfacePerson = '转移接口人',
  setupAassistant = '设置协助人',
  xbomMaintain = '创建Xbom对象',
  xbomObjectDetail = 'Xbom对象详情',
}

/**
 * 功能点权限验证方法
 * @param module 模块名称
 * @param action 操作名称
 * @param divide 分割符
 * @returns
 */
export function auth(module: string, action: string, divide: string = baseSeparator) {
  /** 特殊处理 */
  return _auth(`${module}${divide}${action}`);
}

export const domainEnum = {
  PART_PERMISSIONS: 'PART_PERMISSIONS',
  PARTBOM_PERMISSIONS: 'PARTBOM_PERMISSIONS',
  ENGINEERCONFIG_PERMISSIONS: 'ENGINEERCONFIG_PERMISSIONS',
  LOU_PERMISSIONS: 'LOU_PERMISSIONS',
  PCR_PERMISSIONS: 'PCR_PERMISSIONS',
  CCR_PERMISSIONS: 'CCR_PERMISSIONS',
  IC_PERMISSIONS: 'IC_PERMISSIONS',
  PRODUCTNODE_PERMISSIONS: 'PRODUCTNODE_PERMISSIONS',
  ARCHITECTUREPART_PERMISSIONS: 'ARCHITECTUREPART_PERMISSIONS',
  MDATA_PERMISSIONS: 'MDATA_PERMISSIONS',
  KDDATA_PERMISSIONS: 'KDDATA_PERMISSIONS',
  TCR_PERMISSIONS: 'TCR_PERMISSIONS',
  EWO_PERMISSIONS: 'EWO_PERMISSIONS',
  PRODUCTMODEL_PERMISSIONS: 'PRODUCTMODEL_PERMISSIONS',
  PRODUCTTABLE_PERMISSIONS: 'PRODUCTTABLE_PERMISSIONS',
};
